package org.yenn.pattern.aliyun.creational;

import org.junit.Test;
import org.yenn.pattern.aliyun.creational.prototype.Shape;
import org.yenn.pattern.aliyun.creational.prototype.ShapeCache;

/**
 * 步骤 4
 * PrototypePatternDemo 使用 ShapeCache 类来获取存储在 Hashtable 中的形状的克隆。
 */
public class PrototypePatternDemo {
    /**
     * 步骤 5
     * 验证输出。
     *
     * Shape : Circle
     * Shape : Square
     * Shape : Rectangle
     */
    @Test
    public void getShape() {
        ShapeCache.loadCache();

        Shape clonedShape = (Shape) ShapeCache.getShape("1");
        System.out.println("Shape : " + clonedShape.getType());

        Shape clonedShape2 = (Shape) ShapeCache.getShape("2");
        System.out.println("Shape : " + clonedShape2.getType());

        Shape clonedShape3 = (Shape) ShapeCache.getShape("3");
        System.out.println("Shape : " + clonedShape3.getType());
    }
}